/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.servicio.impl;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dao.IDAOTipoFormaPago;
import pe.com.cotelasa.scp.dominio.common.ESTADO_REGISTRO;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioTipoFormaPago;
import pe.com.cotelasa.scp.entidad.TipoFormaPago;


/**
 *
 * @author Jorge
 */

@Service
public class ServicioTipoFormaPagoImpl implements IServicioTipoFormaPago,Serializable{

    @Inject
    private IDAOTipoFormaPago daoTipoFormaPago;
    
    @Override
    public Collection<TipoFormaPago> obtenerTipoFormaPagoActivos() throws ServiceException {
        try {
                return daoTipoFormaPago.listarActivos(TipoFormaPago.class);
        } catch (DAOException ex) {
                throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public TipoFormaPago conseguirTipoFormaPagoPorId(Integer idTipoFormaPago) throws ServiceException {
       try {
            return daoTipoFormaPago.obtenerEntidadPorId(TipoFormaPago.class, idTipoFormaPago);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public TipoFormaPago conseguirTipoFormaPagoPorNombre(String formaPago) throws ServiceException {
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("nombre", formaPago);
        parametros.put("estadoRegistro", ""+ESTADO_REGISTRO.ACTIVO.getValor());
        try {
            return ((List<TipoFormaPago>)daoTipoFormaPago.obtenerColeccionEntidadPorFiltros(TipoFormaPago.class, parametros)).get(0);
        } catch (DAOException e) {
            throw new ServiceException(e.getMessage(), e);
        }
    }
    
}
